package com.ruicar.afs.cloud.basic.proceeds.mq.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.common.modules.contract.enums.AssetTypeEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.RepaymentStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author: Lee
 * @date 2020-05-29 09:31:33 
 * @description 合同资产还款计划
 */
@Data
public class ContractAssetsRepaymentPlanDTO {

	/** 合同编号 */
	@ApiModelProperty("合同编号")
	private String contractNo;
	/** 车辆编号 */
	@ApiModelProperty("车辆编号")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long carId;
	/** 资产类型 枚举值：（车款、附加贷） */
	@ApiModelProperty("资产类型 枚举值：（车款、附加贷）")
	private AssetTypeEnum assetType;
	/** 期数 */
	@ApiModelProperty("期数")
	private Integer termNo;
	/** 应还款日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("应还款日期")
	private Date dueDate;
	/** 实际收款日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("实际收款日期")
	private Date actualDate;
	/** 剩余本金 */
	@ApiModelProperty("剩余本金")
	private BigDecimal remainPrinciple;
	/** 应收租金 */
	@ApiModelProperty("应收租金")
	private BigDecimal receivableRent;
	/** 应收本金 */
	@ApiModelProperty("应收本金")
	private BigDecimal receivablePrinciple;
	/** 应收利息 */
	@ApiModelProperty("应收利息")
	private BigDecimal receivableInterest;
	/** 实收租金 */
	@ApiModelProperty("实收租金")
	private BigDecimal actualRent;
	/** 实收本金 */
	@ApiModelProperty("实收本金")
	private BigDecimal actualPrinciple;
	/** 实收利息 */
	@ApiModelProperty("实收利息")
	private BigDecimal actualInterest;
	/** 实际利率 */
	@ApiModelProperty("实际利率")
	private Double actualRate;
	/** 收入 */
	@ApiModelProperty("收入")
	private BigDecimal income;
	/** 税金 */
	@ApiModelProperty("税金")
	private BigDecimal tax;
	/** 税率 */
	@ApiModelProperty("税率")
	private Double rate;
	/** 状态 枚举值：未还、已还、逾期、合同取消、提前结清 */
	@ApiModelProperty("状态 枚举值：未还、已还、逾期、合同取消、提前结清")
	private RepaymentStatusEnum status;

}
